<?php
/**
 * @author FeoniX
 * @version v1.0
 */

class Controller {
	protected $view = null;

	public function __construct(){
		$this->view = new View();
	}
	public function run(){
		$ctrl = $_GET['c'];
		$act = $_GET['a'];

		$ctrlFile = APP_PATH . 'Controller/' . $ctrl . 'Controller.class.php';

		if(!file_exists($ctrlFile)){
			exit("控制器 {$ctrl}Controller 不存在，请检查 {$ctrlFile} 文件是否存在<br>");
		}
		include($ctrlFile);
		$class = ucfirst($ctrl).'Controller';
		if(!class_exists($class)) //判断类是否存在, 如果不存在提示错误
		{
			exit("{$ctrl}Controller.class.php中未定义的控制器类" . $class);
		}
		$instance = new $class(); //否则创建实例
		if(!method_exists($instance, $act)) //判断实例$instance中是否存在$action方法, 不存在则提示错误
		{
			exit("{$class}类中不存在方法:{$act}");
		}

		$instance->$act();
	}
	public function display($tpl = ''){
		if(!$tpl){
			$tpl = ucfirst($_GET['c']) . '/' . $_GET['a'] . '.html';
		}
		$this->view->display($tpl);
	}
	public function assign($var, $val){
		$this->view->assign($var, $val);
	}
}

?>